## 9.2. Metacharacters, Listed by Linux Program

Some metacharacters are valid for one program but not for another. Those that are available to a given program are marked by a bullet () in the following table. Notes are provided after the table, and full descriptions of metacharacters are in the following section.

Symbol | ed | vi | sed | awk | grep | egrep | Action
--- | --- | --- | --- | --- | --- | --- | ---
`.` |  |  |  |  |  |  | Match any character (can match newline in gawk).
`*` |  |  |  |  |  |  | Match zero or more preceding.
`^` |  |  |  |  |  |  | Match beginning of line or string.
`$` |  |  |  |  |  |  | Match end of line or string.
`\` |  |  |  |  |  |  | Escape character following.
`[]` |  |  |  |  |  |  | Match one from a list or range.
`\(\)` |  |  |  |  |  |  | Store pattern for later replay.
`\`n |  |  |  |  |  |  | Reuse matched text stored in nth \( \).
`{}` |  |  |  |  |  |  | Match a range of instances.
`\{\}` |  |  |  |  |  |  | Match a range of instances.
`\<\>` |  |  |  |  |  |  | Match word's beginning or end.
`+` |  |  |  |  |  |  | Match one or more preceding.
`?` |  |  |  |  |  |  | Match zero or one preceding.
`|` |  |  |  |  |  |  | Separate choices to match.
`()` |  |  |  |  |  |  | Group expressions to match.

On some Linux systems, grep is a link to egrep, so whenever you run grep you actually get egrep behavior.

In ed, vi, and sed, when you perform a search-and-replace (substitute) operation, the metacharacters in this table apply to the pattern you are searching for but not to the string replacing it.

In awk, {} is specified in the POSIX standard and is supported by gawk if you run it with the -Wre-interval option.

In ed, vi, and sed, the following additional metacharacters are valid only in a replacement pattern:

Symbol | ex | sed | ed | Action
`\` |  |  |  | Escape character following.
`\`n |  |  |  | Reuse matched text stored in nth \( \).
`&` |  |  |  | Reuse previous search pattern.
`~` |  |  |  | Reuse previous replacement pattern.
`\e` |  |  |  | Turn off previous \L or \U.
`\E` |  |  |  | Turn off previous /L or /U.
`\l` |  |  |  | Change single following character to lowercase.
`\L` |  |  |  | Change following characters to lowercase until /E encountered.
`\u` |  |  |  | Change single following character to uppercase.
`\U` |  |  |  | Change following characters to uppercase until \E encountered.

Copyright © 2001 O'Reilly & Associates. All rights reserved.